package lesson03;

public class Test01 {
    // 方法声明
    public static void method01(){
        System.out.println("这是方法method01");
        return;
    }
    // 写一个方法，实现1+2+3+4+..+100
    public static int doSum(int startNumber,int number){
        int sum = 0;
        for(int i = startNumber;i <= number;i++){
            sum += i;
        }
        return sum;
    }

    /**
     * 判断质数
     * @param number：需要判断的数字
     * @return true - 是质数；false - 不是质数
     */
    public static boolean isPrime(int number){
        for(int i = 2;i < number;i++){
            if(number % i == 0){
                return false;
            }
        }
        return true;
    }

    /**
     * 输出一个范围的质数
     * @param start
     * @param end
     */
    public static void printPrimes(int start,int end){
        for(int i = start;i <= end;i++){
            if(isPrime(i)){
                System.out.println(i + "是质数");
            }
        }
    }


    public static void main(String[] args) {
        // 执行方法
        // 参数分为形参和实参
        // 形参：是指方法声明时定义的参数
        // 实参：是指方法调用时传给方法的实际参数
        // 返回值：是指方法内部将数据传递给外部的一种方式
        // 返回值的特点：
        // 1. 如果方法有返回值，在声明方法时必须指定返回值的类型
        // 2. 当方法有返回值时，外部调用后可以选择接收或不接收该返回值
        // 3. 当方法声明有返回值时，方法在执行结束前一定有一个返回值返回
        // 4. 方法同一个时间只能返回一个值
        // 5. 方法如果没有返回值，声明时必须写上void
        // 6. 方法如果没有返回值，外部调用后不能用任何变量去接收它的返回值
        // 7. 方法如果没有返回值，在方法内部也可以写return语句，
        //    但是不能跟任何值，它的作用就是提前结束方法。
//        method01();
//        method01();
//        method01();
//        method01();
//        int number = 100;
//        int sum = doSum(1,number);
//
//        String sumStr = doSum(100,200) + "";
//        System.out.println(doSum(250,300));
//        doSum(300,400);

//        System.out.println(isPrime(15));
//        printPrimes(200,300);

//        int a = 100;
//        method01(a);
//        System.out.println("方法外部a：" + a);
        int [] ary = {100,200,300,400};
        ary = method02(ary);
        System.out.println("方法外部ary[0]：" + ary[0]);
    }

    public static void method01(int a){
        a++;
        System.out.println("方法内部a：" + a);
    }
    public static int [] method02(int [] ary){
        ary = new int[]{100,200,300,400};
        ary[0]++;
        System.out.println("方法内部ary[0]：" + ary[0]);
        return ary;

    }
}
